package cn.mediinfo.dianzidp.remote;

import java.util.HashMap;

public class RequestHead extends HashMap<String, String> {


    /**
     * 用户名
     */
    private String userId;

    /**
     * 密码
     */
    private String password;

    /**
     * 时间戳
     */
    private String timestamp;

    /**
     * 加密密钥
     */
    private String sign;

    /**
     * 服务Id.VA50    Y
     */
    private String fuWuId;

    /**
     * 服务代码    VA50    Y
     */
    private String fuWuDm;

    /**
     * 服务名称    VA100   Y
     */
    private String fuWuMC;

    /**
     * 发送机构代码  VA50    Y
     */
    private String faSongJGDM;

    /**
     * 发送机构名称  VA100   Y
     */
    private String faSongJGMC;

    /**
     * 发送系统简称  VA50    Y
     */
    private String faSongXTJC;

    /**
     * 发送时间    VA50    Y   日期格式yyyy - MM - dd HH:mm: ss
     */
    private String faSongSJ;

    /**
     * 机构编号 VA32    Y
     */
    private String branchCode;

    /**
     * 用户编号
     */
    private String usersId;


   public final class RequestHeadBuilder {
        private final RequestHead requestHead;

        private RequestHeadBuilder() {
            requestHead = new RequestHead();
        }

       public RequestHeadBuilder requestHead() {
            return new RequestHeadBuilder();
        }

        public RequestHeadBuilder userId(String userId) {
            requestHead.put("userid", userId);
            return this;
        }

        public RequestHeadBuilder password(String password) {
            requestHead.put("password", password);
            return this;
        }

        public RequestHeadBuilder timestamp(String timestamp) {
            requestHead.put("timestamp", timestamp);
            return this;
        }

        public RequestHeadBuilder sign(String sign) {
            requestHead.put("sign", sign);
            return this;
        }

        public RequestHeadBuilder fuWuId(String fuWuId) {
            requestHead.put("fuWuId", fuWuId);
            return this;
        }

        public RequestHeadBuilder fuWuDm(String fuWuDm) {
            requestHead.put("fuWuDm", fuWuDm);
            return this;
        }

        public RequestHeadBuilder fuWuMc(String fuWuMC) {
            requestHead.put("fuWuMc", fuWuMC);
            return this;
        }

        public RequestHeadBuilder faSongJGDM(String faSongJGDM) {
            requestHead.put("faSongJGDM", faSongJGDM);
            return this;
        }

        public RequestHeadBuilder faSongJGMC(String faSongJGMC) {
            requestHead.put("faSongJGMC", faSongJGMC);
            return this;
        }

        public RequestHeadBuilder faSongXTJC(String faSongXTJC) {
            requestHead.put("faSongXTJC", faSongXTJC);
            return this;
        }

        public RequestHeadBuilder faSongSJ(String faSongSJ) {
            requestHead.put("faSongSJ", faSongSJ);
            return this;
        }

        public RequestHeadBuilder branchCode(String branchCode) {
            requestHead.put("branchCode", branchCode);
            return this;
        }

        public RequestHeadBuilder usersId(String usersId) {
            requestHead.put("usersId", usersId);
            return this;
        }

        public RequestHead build() {
            return requestHead;
        }
    }
}
